/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Studio7i;

import org.junit.Test;
import static org.junit.Assert.*;
import java.util.List;
import java.util.ArrayList;

/**
 *
 * @author Grupo 5
 */
public class ArmadoSalaEnsayoTest {

    @Test
    public void DebeConfirmarArmadoDeSalaDeEnsayo() {
        System.out.println("Debe confirmar el Armado de la sala de ensayo");

        // Preparar los datos de prueba
        String nombre = "sala 1";
        Local local = new Local("lm001", "Local 1", "algun lugar");
        int capacidadSala = 10;
        double costo = 120;
        // generar la lista de instrumentos
        List<Instrumento> instrumentos = new ArrayList<Instrumento>();
        AdmInstrumentos admInstrumentos = new AdmInstrumentos();
        admInstrumentos.registrarInstrumento("Guitarra", "Yamaha", "Squier", "2009", "Para zurdo", 25.00);
        admInstrumentos.registrarInstrumento("Bateria", "Tamborin", "SD23", "2010", "con platillos nuevos", 32.00);
        instrumentos = admInstrumentos.obtenerListaInstrumentos();
        // Generar la Lista de Servicios
        List<Servicio> servicios = new ArrayList<Servicio>();
        AdmServicios admServicios = new AdmServicios();
        admServicios.registrarServicio("Grabacion", 120.00);
        admServicios.registrarServicio("Partituras", 10.00);
        admServicios.registrarServicio("Musico", 70.00);
        servicios = admServicios.obtenerListaServicios();
        // Generar la sala
        Admsalas2 admSala = new Admsalas2();

        // Ejecucion de la prueba
        String registrado = admSala.registrarSala(nombre, local, instrumentos, servicios, capacidadSala, costo);

        // Comprobar los resultados
        assertEquals(registrado, "ok");
        System.out.println("Estado de registro: " + registrado);
    }

        @Test
        public void DebeMostrarMensajeDeErrorSiSeIngresanMasInstrumentosQueLaCapacidadDeLaSala () {
        System.out.println("Debe mostrar mensaje de error si se intentan ingresar " +
                "más instrumentos que la capacidad de la sala.");

        // Preparar los datos de prueba
        String nombre = "sala 1";
        Local local = new Local("lm001", "Local 1", "algun lugar");
        int capacidadSala = 3;
        double costo = 120;
        // generar la lista de instrumentos
        List<Instrumento> instrumentos = new ArrayList<Instrumento>();
        AdmInstrumentos admInstrumentos = new AdmInstrumentos();
        admInstrumentos.registrarInstrumento("Guitarra", "Yamaha", "Squier", "2009", "Para zurdo", 25.00);
        admInstrumentos.registrarInstrumento("Guitarra", "Falcon", "Basic", "1989", "Criolla", 5.00);
        admInstrumentos.registrarInstrumento("Bateria", "Tamborin", "SD23", "2010", "con platillos nuevos", 32.00);
        admInstrumentos.registrarInstrumento("Microfono", "Yamaha", "Sq34", "2003", "inalambrico", 25.00);
        instrumentos = admInstrumentos.obtenerListaInstrumentos();
        // Generar la Lista de Servicios
        List<Servicio> servicios = new ArrayList<Servicio>();
        AdmServicios admServicios = new AdmServicios();
        admServicios.registrarServicio("Grabacion", 120.00);
        admServicios.registrarServicio("Partituras", 10.00);
        admServicios.registrarServicio("Musico", 70.00);
        servicios = admServicios.obtenerListaServicios();
        // Generar la sala
        Admsalas2 admSala = new Admsalas2();

        // Ejecucion de la prueba
        String registrado = admSala.registrarSala(nombre, local, instrumentos, servicios, capacidadSala, costo);

        // Comprobar los resultados
        assertEquals(registrado, "Error: la cantidad de instrumentos supera la capacidad de la sala");
        System.out.println(registrado);
    }
        
        @Test
        public void DebeMostrarMensajeDeErrorSiSeIngresanMasInstrumentosQueLaConfiguraciónBasica () {
            
                //configuración básica:
                //2 guitarras
                //1 batería
                //1 teclado
                //2 micrófonos
            
        System.out.println("Debe mostrar mensaje de error si se ingresan más " +
                "instrumentos que la configuración básica");

        // Preparar los datos de prueba
        String nombre = "sala 1";
        Local local = new Local("lm001", "Local 1", "algun lugar");
        int capacidadSala = 10;
        double costo = 120;
        // generar la lista de instrumentos
        List<Instrumento> instrumentos = new ArrayList<Instrumento>();
        AdmInstrumentos admInstrumentos = new AdmInstrumentos();
        admInstrumentos.registrarInstrumento("guitarra", "Yamaha", "Squier", "2009", "Para zurdo", 25.00);
        admInstrumentos.registrarInstrumento("guitarra", "Falcon", "Basic", "1989", "Criolla", 5.00);
        admInstrumentos.registrarInstrumento("bateria", "Tamborin", "SD23", "2010", "con platillos nuevos", 32.00);
        admInstrumentos.registrarInstrumento("teclado", "Yamaha", "Sq34", "2003", "inalambrico", 25.00);
        admInstrumentos.registrarInstrumento("microfono", "Yamaha", "Sq32", "2003", "Cableado", 19.00);
        admInstrumentos.registrarInstrumento("microfono", "Yamaha", "Sq39", "2005", "inalambrico", 25.00);
        admInstrumentos.registrarInstrumento("microfono", "Yamaha", "Sq34", "2004", "inalambrico", 25.00);
        instrumentos = admInstrumentos.obtenerListaInstrumentos();
        // Generar la Lista de Servicios
        List<Servicio> servicios = new ArrayList<Servicio>();
        AdmServicios admServicios = new AdmServicios();
        admServicios.registrarServicio("Grabacion", 120.00);
        admServicios.registrarServicio("Partituras", 10.00);
        admServicios.registrarServicio("Musico", 70.00);
        servicios = admServicios.obtenerListaServicios();
        // Generar la sala
        Admsalas2 admSala = new Admsalas2();

        // Ejecucion de la prueba
        String registrado = admSala.registrarSala(nombre, local, instrumentos, servicios, capacidadSala, costo);
        System.out.println(registrado);
        
        // Comprobar los resultados
        assertEquals(registrado, "Error: la cantidad de instrumentos es mayor que la configuracion basica");
        System.out.println(registrado);
    }

}
